Database queries are executed according to a query execution plan. The terms query execution plan, query plan, and plan, are used interchangeably herein. Query plans can be generated manually, or automatically. Automatic methods include software tools, computer programs, applications, software generators, and optimization. Optimization is similar to a compiler process for source code. However, where the compiler generates an executable computer program, the optimizer generates the query execution plan. The optimization is typically based on a current state of the database. The current database state may be represented in table and index definitions, table sizes, histogram statistics, etc. Optimization is a complex technology, and includes planning and statistics techniques. The planning techniques are similar to those used in artificial intelligence technology. However, one query may map to a number of alternate query execution plans. While all the alternate plans provide the same result, the efficiency of each plan may vary depending on the state of the database during execution. The optimizer tries to choose an efficient plan, but the database state is dynamic, and may vary between optimization and execution. As such, the plan may include inefficiencies. Plans generated by other automated means, and manually generated plans may also include these inefficiencies. However, typical approaches in improving query performance modify the techniques involved in optimization.